home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / opus / sfued110.zip / README17.SFU < prev    next >
Text File  |  1992-11-16  |  25KB  |  533 lines

  1.  
  2.               StormFront User Editor for the Opus CBCS
  3.                    Copyright 1992 by Kevin Silcox
  4.  
  5.                                                       November 16, 1992
  6.  
  7. Disclaimer
  8. ----------
  9.     This software is available "AS IS".  It is not guaranteed to work at
  10. all. If it trashes your system or ruins your life, you have been warned.
  11. I am not responsible for any damages incurred from the use or misuse of
  12. this software.  There is also no fee to use this software to keep with
  13. the spirit of Opus.
  14.  
  15.     You will have to get by without any real documentation until I, or
  16. someone else writes some for this program.  If you know Opus and how it
  17. works, then this program should be pretty much self-explanatory as far
  18. as what the actual changes to the user database do.  So for now, there's
  19. only a brief description of how to use the actual functions of the program.
  20. Even though SFUE17 may not have the most user-friendly interface, I think
  21. that its flexibility is worth the struggle you *may* go through when you
  22. first start to use it.  Enjoy!
  23.  
  24.   WARNING: If you're running Opus in a multi-tasking environment then make
  25.   sure that you DO NOT Sort or Zap the database when there is a potential
  26.   for Opus to need to use the user database! (i.e. If a user calls and
  27.   tries to login.)
  28.  
  29.  
  30. --=={*-------------------------------------------------*}==--
  31.     This version: 1.10  --->  For Opus v1.7+
  32.  
  33.     Requires approximately 140K of Available RAM.  Requires
  34.     more if using the Sort option (based on number of records
  35.     in your database --> about 28 bytes for each record, up to
  36.     a maximum of about 2300 records, plus 8 bytes per CWF). If
  37.     anyone exceeds 2300 records then please let me know.  The
  38.     maximum memory requirement should be about 200K.
  39.  
  40. **> I recommend you use an EXE compressor such as PKlite in
  41.     order to reduce the program size. (About 53% with PKlite v1.14)
  42.  
  43.     This program is for maintaining the user database used with
  44. Opus.  It is capable of adding users, marking them to be ReUsed,
  45. Purged, Normal, and even Removing users marked to be Purged (Zap),
  46. along with many other nifty features.
  47.  
  48.  
  49.  
  50.  
  51. -*-
  52.  
  53.     The program accepts a command-line argument for local and non-
  54. local use.  Entering an argument other than those arguments listed
  55. will display a brief help screen.  You may either use '-' or '/'
  56. characters for each argument.  The arguments are as follows:
  57.  
  58.  /VM force Mono mode       /VC force Color mode    /VA AutoDetect Video
  59.  /VD force DOS Writes      /VB force BIOS Writes   /VX Translate IBM Graphics
  60.  /Z[E][days] Zap database  /P{priv}[+/-]           /Ud:\\path\\[filename]
  61.  /O[{1st}[{order}][,{2nd}[{order}]][,start[,end]]] Sort database
  62.  /I  Install/Reconfigure   /E[days] Expiration Reset
  63.  
  64. *
  65.     The /VM and /VC options are only to force the memory address for the
  66. direct-screen writes if the program doesn't recognize the correct video
  67. mode.  If no arguments are entered, the program will AutoDetect which
  68. video mode to use for the direct-screen writes (or whatever mode has
  69. been selected as the default).  If you use the DOS option then I/O may
  70. be redirected.
  71.  
  72. *
  73.     The /U allows you to specify the name of the User Database file
  74. that you want to use instead of the default USER.DAT.  If you specify
  75. just the full path without a filename, USER.DAT will be assumed (you
  76. must have a "\" after the path though).
  77.  
  78. *
  79.     You may either use the /VX (Translate) option from the command-line,
  80. or use CTRL-X to toggle IBM Graphics translation ON and OFF from the
  81. user edit screen. NOTE: When translation is turned ON, the IBM Graphics
  82. characters in the Report will be translated also.
  83.  
  84. *
  85.     There are several ways of executing a database Zap.  If you just
  86. specify /Z then only records that have a Status of 'Purge' will be
  87. removed.  If you specify a number (/Z90) then any user that hasn't called
  88. in that many days will be removed.  If you specify /ZE then SFUE17 will
  89. check the expiration fields in each record to decide whether a user
  90. should be removed or demoted (based on the Date or Time fields and Action
  91. field).  You can localize the processing based on privilege level if you
  92. use the /P option.  See the Zap option below for more information.
  93.  
  94.   i.e.  SFUE17 /ZE /PN-
  95.   The above selection would check the expiration fields, check the user
  96.   status field, and *only* remove the user if their privilege level is
  97.   Normal or below.
  98.  
  99.  
  100. *
  101.     The /P is a Privilege level selector that can be used with either
  102. the /E or /Z options to localize processing to specific privilege
  103. levels (or level).  If you use *both* the /Z and /E options they will
  104. both use the same Privilege level range, but the Expiration fields
  105. will be updated before the database gets "Zapped".
  106.  
  107.  
  108. *
  109.     The Sort option may look complex, but it works the same as if you
  110. were to enter the options from inside the program.  If you just specify
  111. /O then all the defaults will be used.  {1st} and {2nd} are the primary
  112. and secondary sort keys respectively.  For the Name and Alias you can
  113. specify a second letter for the first or last name (last name is the
  114. default for both).  {order} is either an 'A' or 'D' (ascending or
  115. descending).  The start and end are the stsrt and end records
  116. respectively.  Here are some examples:
  117.  
  118.   SFUE17 /OPD,NLD,3,0
  119.     -- Sort records 3 to end by descending priv, descending last
  120.     name
  121.   SFUE17 /O,A,3
  122.     -- Sort records 3 to end by descending priv, descending last
  123.     alias name
  124.   SFUE17 /ONFA
  125.     -- Sort records 2 to end by ascending first name
  126.   SFUE17 /O,,3
  127.     -- Sort records 3 to end using the default sort order
  128.  
  129.   Hope that's enough to give you an idea on how to sort from the command-
  130.   line.  Once you're familiar with the keys you press from inside the
  131.   program, and when you get used to the format it gets pretty easy to use.
  132.   Basically, each key you press inside the program will go onto the
  133.   command-line, and wherever you just press <cr> to accept a default
  134.   you can just leave that key out.
  135.  
  136. *
  137.     Use /I to change the default parameters.  NOTE: Not all parameters
  138. saved in the INI file get priority.  For example, if the OPUS environment
  139. variable is pointing to a PRM file, it will be used instead of the name
  140. stored in the INI file.  The INI file is mainly used as a backup method
  141. to make locating the files it needs more reliable.
  142.  
  143.  
  144. *
  145.     By using the /E option you can automatically reset each users'
  146. expiration date based on their last call.  This is to be used in conjunction
  147. with the Expiration Controls within Opus.  If you don't specify the
  148. day count on the command-line, SFUE17 will extract and use the value
  149. in the PRM file.  This feature makes it nice to make sure each user
  150. will be removed if their account is inactive over a certain number of
  151. days.  This option is currently only available from the command-line.
  152.  
  153.  
  154. *
  155.  
  156.  
  157. *--===--*
  158.  
  159.  
  160.     Whenever there has been a modification to the current user record,
  161. SFUE17 will place an asterisk '*' at the top right-hand side of the
  162. screen.  There are two things that SFUE17 *may* change automatically.
  163. If the number of times a user has called the system is zero (0), it will
  164. be changed to one (1).  Also, if the user has QkMenu (Return to Last
  165. Menu) turned on, SFUE17 will try to make sure the menu is valid to prevent
  166. Opus from choking. :-)
  167.  
  168.     Also, if the current users' account is going to "Expire" then their
  169. status field will have a blinking red asterisk (*'s) on both sides of
  170. the Status field.
  171.  
  172.     As of v1.09 there is support to Tag records.  If a record has been
  173. Tagged, then a 'T' will be displayed on the top line just before the User
  174. Status.  Records will only remain tagged for the current session.
  175.  
  176.     There are now two indicators in ScrnSect 1 (as of v1.08).  The one
  177. that you probably won't see is the '[COPY]' indicator.  This indicates
  178. that you are NOT currently editing the database that Opus uses.  If you
  179. are editing the actual database that Opus uses, then you won't see the
  180. '[COPY]'.  The other indicator is '*CWF*' which indicates that the user
  181. being displayed has a CWF file in the Opus root directory (#.?BS).  This
  182. is displayed whether you're editing a copy of the database or the real one.
  183.  
  184.     When using the Inactivity timer, the program will beep at 5 second
  185. intervals starting 20 seconds before exiting.
  186.  
  187.  
  188.  
  189.  
  190. **==--==**
  191.  
  192.  ** NOTE:  SFUE17 will always try to show the users' Real Name in
  193.            the Name field and their Alias in the Alias field as of
  194.            v1.08 (based on the information in the PRM file).
  195.  
  196.       The help screen inside the program takes priority over this file.
  197. In the lower right-hand corner of the User Screen are the most used
  198. commands that are available in all ScreenSections.  Below is a brief
  199. description of what they do:
  200.  
  201.     ?)  Help:           Displays a help screen.
  202.  
  203.     R)  Record Number:  This allows you to go to a specific record number
  204.                        within the database.
  205.  
  206.     @)  Tag/Untag:   This will toggle whether a user record has been marked
  207.                       as 'Tagged'.
  208.  
  209.     *)  Utilities:   This is for maintaining the database.  Options are:
  210.             Adduser: If you need to add a user, this is what you'll use.
  211.                       It has gives you the option of just adding a record
  212.                       at the end of the database, or searching for a record
  213.                       marked with the "Reuse" status.  If you choose to
  214.                       search for a record to Reuse, and there is a record
  215.                       marked with the Reuse status, then that record will be
  216.                       cleared of its information and you may start entering
  217.                       the new user information in that record.
  218.  
  219.             rEstore: This is if you want to add the users in USER.SAV back into
  220.                       the database.  If successful, USER.SAV will be deleted
  221.                       and a new USER.SAV will be created with a size of zero
  222.                       bytes.  This will allow you to Undelete the old savefile
  223.                       if necessary.
  224.  
  225.             Find   : This allows you to search certain fields for a string.
  226.                       It's useful for finding a specific user quickly, among
  227.                       other things. (Previously called Search)
  228.  
  229.             Global : Allows you to make certain changes to specific (or all)
  230.                       users.  You may specify to set only a certain privilege
  231.                       level, or the default is all records (record #1 will
  232.                       NOT be touched).  There are also sub-levels that I
  233.                       don't feel like going into.
  234.                       -=***=-
  235.                       I feel that the options for changing Keys and Sections
  236.                       may cause some confusion.  With those two options there
  237.                       are 4 sub-options [Exact/Set/Toggle/Unselect]:
  238.  
  239.                         Exact:    Set each user to exactly the keys you
  240.                                   specify.  If you only select the 'A' key,
  241.                                   that's the only key the users' will have
  242.                                   no matter what they started out with.
  243.                         Set:      All keys you specify will be turned ON for
  244.                                   each user.
  245.                         Toggle:   Exactly what it says...  If you select the 'A'
  246.                                   key each users' keys will be set to the
  247.                                   opposite it started out as.
  248.                         Unselect: The opposite of Set.  It will make sure each
  249.                                   key you select is turned OFF.
  250.  
  251.             sOrt   : This will sort your database based on the keys you
  252.                       select, and whether you select Ascending or Descending
  253.                       order for each key.  You may select up to two keys to
  254.                       sort by.  If the database you're sorting is the same
  255.                       one pointed to by the PRM file, then the CWF's will
  256.                       be updated accordingly.  If there is a problem renaming
  257.                       a CWF, it will be most probably be renamed with a .BAK
  258.                       extension.
  259.  
  260.             User Status:  This allows you to modify the status of a user's
  261.                           record.  The Status can be one of the following:
  262.                             Normal: This is a normal record.
  263.                             Reuse : As new users are added, they will be
  264.                                      placed in records marked with this
  265.                                      status instead of being added to the
  266.                                      end of the database.
  267.                             Purge : This means that if you use the Zap
  268.                                      function, the record will be removed
  269.                                      from the database.  Also used by OMAN.
  270.                         Update ID : This will update the caller ID number
  271.                                      but should only be used if the
  272.                                      caller_ID is all zero's or in conflict
  273.                                      with another record.
  274.  
  275.             sWap   : This allows you to swap any two records with each other.
  276.  
  277.             Report : This generates a report for all users and sends it either
  278.                       to the Screen, Printer, or a File.  You can Pause the
  279.                       output by pressing 'P', or have an option to Abort by
  280.                       pressing 'ESC'.  You are asked several questions about
  281.                       how the report should be, but I don't have the time to
  282.                       go into detail explaining it...  However, I will state
  283.                       that SFUE17 will NOT send control codes to the printer,
  284.                       but only format the report appropriately.  Setting your
  285.                       printer into the proper font size and LPI setting is
  286.                       up to you.  When sending to the printer or a file, there
  287.                       will be a progress indicator (percent complete).
  288.  
  289.             Zap    : This removes any records marked with the Purge status.
  290.                       Also you can specify the number of days a user can go
  291.                       without calling the system before he/she is removed
  292.                       from the database.  In addition you can check the
  293.                       expiration fields and localize processing to certain
  294.                       privilege levels. This option is also available from
  295.                       the command-line.  By default a file called USER.SAV
  296.                       will be used to place any deleted records into.  Also,
  297.                       the names of any deleted users will be placed into a
  298.                       file with the same basename as the save file, but with
  299.                       a ".DEL" extension. (i.e. USER.DEL)  You may restore
  300.                       the records by using the Import option.  If the
  301.                       database you're zapping is the same one pointed to
  302.                       by the PRM file, then the CWF's will be updated
  303.                       accordingly.  The CWF's of user's that are removed
  304.                       from the database will be renamed from #.BBS to #.OLD.
  305.  
  306.  
  307.   +/-)  Change Record Number:
  308.                      You can use either the plus and minus keys to
  309.                       increment/decrement the record number respectively,
  310.                       or use the right and left arrow keys to do the same
  311.                       thing.  Home and End will place you at the first and
  312.                       last records respectively.
  313.  
  314.   ESC)  Quit:   If you have made any changes to the current record without
  315.                  going to another record, you will be asked if you want to
  316.                  save the user information before exiting.  ** Anytime you
  317.                  change to another record, the current record is saved to
  318.                  disk if it has been modified. **
  319.  
  320. SPACE)  {SpaceBar} ScrnSect:
  321.                 Changes the current Screen Section.  The active ScrnSect is
  322.                  displayed at the top of the screen.  The Screen Sections are
  323.                  at the left side of each box border.  A ScrnSect must be
  324.                  active in order for its commands to be active.  Also when a
  325.                  ScrnSect is active, the number next to the active box will
  326.                  BLINK.
  327.                 The ScrnSect can also be changed with the up and down arrow
  328.                  keys to decrement/increment the ScrnSect number respectively.
  329.  
  330.     0)  Continue Search:
  331.                 Only valid/displayed if you have already specified a search
  332.                  key.  This allows you to continue searching on the previously
  333.                  entered search key starting at the next record.
  334.  
  335.    F9)  DOS Shell:
  336.                 Exactly what it says, and the User Editor IS swapped out
  337.                  of memory.
  338.  
  339.   INS)  Add New User:
  340.                 Same as using the *Utils/Adduser option.
  341.  
  342.   DEL)  Toggle User Status:
  343.                 An easy method of changing a user's status.
  344.                 Status is one of the following: Normal, ReUse, Purge
  345.  
  346. CTRL-H) Toggle Hidden Passwords:
  347.                 Toggles Privilege to not display passwords for.  Either
  348.                  Normal or Sysop access.  Default is Normal.
  349.  
  350. CTRL-I) Update Index:
  351.                 Forces the NDX file to be updated (via index program).
  352.  
  353. CTRL-N or CTRL-RIGHT) Next Tagged Record:
  354.                 For easy viewing of Tagged records.
  355.  
  356. CTRL-P or CTRL-LEFT) Previous Tagged Record:
  357.                 For easy viewing of Tagged records.
  358.  
  359. CTRL-R) Re-Load Record:
  360.                 Reads in the current user from disk.  Use in case you make
  361.                 some changes to the record and decide you really didn't
  362.                 want to do that. :)
  363.  
  364. CTRL-S) Save Options:
  365.                 Saves the current options as the defaults to the INI file.
  366.  
  367. CTRL-X) Toggle IBM Graphics:
  368.                 Toggles IBM Graphics conversion ON/OFF.
  369.  
  370.  
  371. ***=>   If you have the inactivity timer set, SFUE17 will save the current
  372. record and update the index *if necessary* (and nobody is online) before
  373. exiting.
  374.  
  375.  
  376.  
  377. **==--==**
  378.  
  379. STRING EDITING:
  380. --------------
  381.     When using either BIOS or DIRECT screen writes you now have full
  382. editing capabilities when entering in strings.  Valid keys are:
  383.  
  384. Left/Right Arrow Keys:  Moves cursor one character left/right within string.
  385.              HOME/END:  Places the cursor at the beginning/end of the
  386.                         string being edited.
  387.                INSert:  Toggles Insert mode ON/OFF.  When ON the cursor
  388.                         will change to more of a block cursor, and when
  389.                         not in insert mode the cursor will appear normal.
  390.                DELete:  Deletes the character under the cursor.
  391.                    F6:  Deletes everything from the cursor to the end of
  392.                         the string.
  393.  
  394.     When using DOS mode you can clear the string by pressing the SPACEBAR
  395. for the first character and then pressing ENTER.
  396.  
  397.  
  398.  
  399.  
  400.  
  401. **==--==**
  402.  
  403.     I hope this is enough of a program description to get you familiar with
  404. the program.  For Opus v1.7+ the ScrnSect is not the same as the "Section" in
  405. Opus.
  406.     Currently this Editor doesn't contain an internal index updating function.
  407. You will need to use the USERNDX program that is distributed with Opus v1.7+.
  408. The Editor will call USERNDX when exiting whenever it thinks the Index needs
  409. to be updated.  USERNDX will only be called when you have made changes inside
  410. the Editor that might change the NDX file.  USERNDX should either be located
  411. in the PATH, or in the same directory as your user database, or in your Opus
  412. Home Directory.  Once all the drive/path information has been found once, it's
  413. stored in an INI file so SFUE17 can always find the needed files (unless
  414. they're moved). ;-)
  415.  
  416. ------------------------------------------------------
  417.  
  418. ***********************
  419. * Report Information: *
  420. ***********************
  421.  
  422. **
  423. Report Detail Info (80-column output):
  424. ------------------------------------------------------
  425. Detail Group 1:
  426.  A = User Record Number                 (Width =  5)
  427.  B = User Name (Real)                   (Width = 26)
  428.  C = Phone Number                       (Width = 15)
  429.  D = City, State                        (Width = 25)
  430. --
  431. Detail Group 2:
  432.  E = Street Address                     (Width = 26)
  433.  F = Answer to SysOp Question           (Width = 43)
  434. --
  435. Detail Group 3:
  436.  G = SysOp Comment                      (Width = 44)
  437.  H = Birthdate                          (Width =  9)
  438.  I = Access Privilege                   (Width =  9)
  439.  J = Language Number                    (Width =  1)
  440. --
  441. Detail Group 4:
  442.  K = Keys                               (Width = 32)
  443.  L = Download:Upload Ratio              (Width =  9)
  444.  M = Days Since Last Call               (Width =  4)
  445.  N = Password (optional)                (Width = 15)
  446.  
  447. ------------------------------------------------------
  448.  
  449. **
  450. Report Detail Info (132-column output):
  451. ------------------------------------------------------
  452. Detail Group 1:
  453.  A = User Record Number                 (Width =  5)
  454.  B = User Name (Real)                   (Width = 26)
  455.  C = Phone Number                       (Width = 15)
  456.  D = City, State                        (Width = 25)
  457.  E = Street Address                     (Width = 25)
  458.  F = Alias                              (Width = 20)
  459. --
  460. Detail Group 2:
  461.  G = Answer to SysOp Question           (Width = 44)
  462.  H = SysOp Comment                      (Width = 45)
  463.  I = Birthdate                          (Width =  9)
  464.  J = Password (optional)                (Width = 15)
  465. --
  466. Detail Group 3:
  467.  K = Access Privilege                   (Width =  9)
  468.  L = Keys                               (Width = 32)
  469.  M = Download:Upload Ratio              (Width =  9)
  470.  N = Days Since Last Call               (Width =  4)
  471.  O = First Call to System               (Width = 11)
  472.  P = Language                           (Width = 10)
  473.  
  474. ------------------------------------------------------
  475.  
  476. Errorlevels:
  477.   8: User Currently Online
  478.   7: Writing INI Structure
  479.   6: Creating INI File
  480.   5: Error Opening User Database
  481.   4: User Database NOT Found
  482.   3: Writing Record
  483.   2: Reading Record
  484.   1: Unsuccessful (General Error)
  485.  
  486.  
  487. ------------------------------------------------------
  488.  
  489. Credits:
  490. ~~~~~~~
  491.         This product uses the SPAWNO routines by Ralf Brown to minimize
  492. memory usage while shelling to DOS and running other programs.
  493.  
  494.         Sort routine written by R. Gardner and supplied within Bob Stout's
  495. SNIPPETS file.
  496.  
  497.         PKLITE Copyright PKWARE, Inc.
  498.  
  499.  
  500.  
  501.  
  502.  
  503. -={**}=-
  504.     Thank You for taking your time to read this, and use my program.
  505. If you have any comments or suggestions, I'd like to hear from you.
  506. Please contact me if you have any problems with the program, or you
  507. would like to see any added features.  You may contact me (via NetMail)
  508. at the phone number (or FidoNet Address) listed below.  I also read the
  509. NEWOPUS and MEADOW Echo's.  The latest version of my software is also
  510. available on my BBS.  It may be requested with the magic name of "SFUE17"
  511. for the Opus 1.7+ version, and "SFUE11" for the Opus 1.1x version.
  512.  
  513.                                 --=={ Kevin Silcox ------
  514.                                 SysOp of:
  515.                                     StormFront
  516.                                     in Orangevale, California
  517.                                     (916) 988-0407
  518.                                     FidoNet (1:203/407.0)
  519.                                     CalNet (49:916/407.0)
  520.  
  521.                                 BBS Hours:
  522.                                     Conditionally 23 hours a day,
  523.                                       but definately between:
  524.                                       11:00 p.m. and 11:00 a.m
  525.                                     excluding National Mail Hour:
  526.                                       2:00 a.m to 3:00 a.m PDT
  527.  
  528.     Special Thanks to my Beta Test Team, the Opus Utility Team, and the
  529. users for making suggestions that have increased the flexibility and
  530. power of SFUE17, and especially for finding those little critters that
  531. lurk around in software!
  532.  
  533.